using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering; // 引入 UnityEngine.Rendering 命名空间

namespace DT.URP.Div
{
    public class DTCustomPipeline : RenderPipeline
    {
        DTCameraRenderer dTCameraRenderer = new DTCameraRenderer();
        protected override void Render(ScriptableRenderContext context, Camera[] cameras)
        {
            // 自定义渲染流程
            CommandBuffer cmd = new CommandBuffer { name = "DT Custom Pipeline" };
            foreach (Camera camera in cameras)
            {
                dTCameraRenderer.Render(context, camera);
                // // 3. 设置摄像机属性
                // context.SetupCameraProperties(camera);

                // // 4. 清除渲染目标（解决黑屏关键步骤）
                // cmd.ClearRenderTarget(
                //     true,  // 清除深度
                //     true,  // 清除颜色
                //     new Color(0.2f, 0.2f, 0.2f, 1) // 默认背景色
                // );
                // context.ExecuteCommandBuffer(cmd);
                // cmd.Clear();

                // // 5. 剔除操作
                // camera.TryGetCullingParameters(out var cullingParameters);
                // CullingResults cull = context.Cull(ref cullingParameters);
                // // 绘制天空盒
                // context.DrawSkybox(camera);

                // // 6. 绘制不透明物体
                // var sortingSettings = new SortingSettings(camera)
                // {
                //     criteria = SortingCriteria.CommonOpaque
                // };
                // var drawingSettings = new DrawingSettings(
                //     new ShaderTagId("UniversalForward"),
                //     sortingSettings
                // );
                // var filterSettings = new FilteringSettings(
                //     RenderQueueRange.opaque
                // );
                // context.DrawRenderers(
                //     cull, ref drawingSettings, ref filterSettings
                // );

                // // 8. 绘制透明物体
                // // sortingSettings.criteria = SortingCriteria.CommonTransparent;
                // // drawingSettings.shaderTagId = new ShaderTagId("UniversalForward");
                // // filterSettings.renderQueueRange = RenderQueueRange.transparent;
                // // context.DrawRenderers(
                // //     cull, ref drawingSettings, ref filterSettings
                // // );

                // // 7. 提交绘制命令
                // context.Submit();
            }
        }
    }
}
/*


*/